home *** CD-ROM | disk | FTP | other *** search
/ Nebula 2 / Nebula Two.iso / SourceCode / DeveloperLabs / Lab4 / Solution / PaintScrollView.m < prev    next >
Text File  |  1995-06-12  |  2KB  |  95 lines

  1. #import "PaintScrollView.h"
  2. #import "PaintDocView.h"
  3. #import "PaintLabParams.h"
  4.  
  5. #import <appkit/Control.h>
  6. #import <appkit/Matrix.h>
  7.  
  8. @implementation PaintScrollView
  9.  
  10. +newFrame:(const NXRect *)tF
  11. {
  12.     NXRect docRect;
  13.     id myDocView;
  14.     
  15.     // Create the newScrollView
  16.     self = [super newFrame:tF];
  17.         [[self setVertScrollerRequired:YES]
  18.            setHorizScrollerRequired:YES];
  19.     
  20.     // Create and install the docView
  21.     NXSetRect(&docRect, 0.0, 0.0, DOC_WIDTH, DOC_HEIGHT);
  22.     myDocView = [PaintDocView newFrame:&docRect];
  23.     [self setDocView:myDocView];
  24.     
  25.     return self;
  26. }
  27.  
  28.  
  29. //
  30. // This method is automatically created by the Interface Builder
  31. // because the class description for a PaintScrollView has an outlet
  32. // called "brushSizeText."  At runtime (during execution of
  33. // loadNibFile::) this method is automatically called to set the
  34. // value of the brushSizeText instance variable to be the id of
  35. // whatever object was connected to the outlet.
  36. //
  37. // The right object to connect to the outlet is the text object
  38. // which will reflect the value of the brush-size slider.
  39. //
  40.  
  41. - setBrushSizeText:anObject
  42. {
  43.     brushSizeText = anObject;
  44.     return self;
  45. }
  46.  
  47.  
  48. //
  49. // The next four methods (clear:, setBrushShape:, setBrushSize:,
  50. // and setPaintColor:) just send their parameters on to the
  51. // docView, which does the real work.
  52. //
  53.  
  54. - clear:sender
  55. {
  56.     [[self docView] clear];
  57.         return self;
  58. }
  59.  
  60.  
  61.  
  62. - setBrushShape:sender        // Sender is a radio-button array
  63. {
  64.     int shape;
  65.     
  66.     shape = [sender selectedRow];
  67.     [[self docView] setDocBrushShape:shape];
  68.     return self;
  69. }
  70.  
  71. - setBrushSize:sender        // sender is a slider
  72. {
  73.     float brushSize;
  74.     
  75.     brushSize = (float)[sender intValue];
  76.     [brushSizeText setFloatValue:brushSize];
  77.     [[self docView] setDocBrushSize:brushSize];
  78.     return self;
  79. }
  80.  
  81. - setPaintColor:sender        // sender is a radio-button array
  82. {
  83.     float color_array[] = {NX_BLACK, NX_DKGRAY, NX_LTGRAY, NX_WHITE};
  84.     
  85.     // Double square brackets!  The outer ones are for array
  86.     // indexing, the inner ones are a method call.
  87.     [[self docView] setDocPaintColor:color_array[[sender selectedRow]]];
  88.     return self;
  89. }
  90.  
  91.  
  92.  
  93.  
  94. @end
  95.